﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain.Model.Comparendos;
using Domain.Model.SecretariasDeTransito;
using Domain.Model.Vehiculos;
using Domain.Model.Infracciones;
using Domain.Model.Agentes;
using Domain.Model.Infractores;
using Domain.Model.Direcciones;
using Domain.Model.Articulos;

namespace Domain.Model.Services
{
    /// Define las operaciones de un servicio de Comparendo
    public interface IComparendoService
    {
        Comparendo ComparendoFromId(string ComparendoId);
        List<Comparendo> AllComparendos();
        void RemoveComparendo(ComparendoId ComparendoId);

        ComparendoId CreateComparendo(
            string numero,
            DateTime fecha,
            String tipoInfractor,
            String estado,
            String observacion,
            SecretariaDeTransitoId secretariaTransitoId,
            VehiculoId vehiculoId,
            InfraccionId infraccionId,
            AgenteId agenteId,
            InfractorId infractorId,
            Direccion direccion);

        ComparendoId EditComparendo(
            ComparendoId ComparendoId,
            string numero,
            DateTime fecha,
            String tipoInfractor,
            String estado,
            String observacion,
            SecretariaDeTransitoId secretariaTransitoId,
            VehiculoId vehiculoId,
            InfraccionId infraccionId,
            AgenteId agenteId,
            InfractorId infractorId,
            Direccion direccion);





        Infraccion InfraccionFromId(string InfraccionId);
        List<Infraccion> AllInfracciones();
        void RemoveInfraccion(InfraccionId InfraccionId);

        InfraccionId CreateInfraccion(
            String codigo,
            String descripcion,
            int cantSMLVM,
            int esVigente,
            Articulo articulo);

        InfraccionId EditInfraccion(
            InfraccionId InfraccionId,
            String codigo,
            String descripcion,
            int cantSMLVM,
            int esVigente,
            Articulo articulo);

    }
}
